Methods for processing documents using rules in variable data printing operations

ABSTRACT

Rules for variable data printing operations are defined using statements having text or image variables used in an object for a document template. Statements include conditions that evaluate content or data for the variables to determine whether the resulting content or data for the object is modified. Multiple statements are used within a rule, including those with complex expressions. The rules allow the generations of variety of documents that include different and fixed content.

FIELD OF THE INVENTION

The present invention relates to processing documents used in variabledata printing operations. More particularly, the present inventionrelates to defining and using rules for variable data printingoperations.

DESCRIPTION OF THE RELATED ART

A challenge for advanced variable data printing (VDP) composition ismaking sure that the design template works in all variety of thedocuments used in the subject case. VDP printing operations, however,may not be able to implement complex rules or compositions based on alarge variety of text objects or in conjunction with image objects.

SUMMARY OF THE INVENTION

A method for variable data printing operations is disclosed. The methodincludes defining a text object within a document template for aplurality of documents. The text object includes a first text variablethat dynamically changes between the plurality of documents. The methodalso includes evaluating a value for a first text variable according toa text object rule having a first statement. The method also includesimplementing an action to modify a text object format for the textobject according to the first statement based on the value for the firsttext variable. The method also includes inserting text data according tothe modified text object format into the text object for the document.The method also includes displaying the document with the text objectincluding the text data according to the modified text object format.

A method for variable data printing operations is disclosed. The methodincludes defining an image object with an image placeholder within adocument template for a plurality of documents. The method also includesevaluating an image variable associated with the document according toan image object rule. The image variable differs between the pluralityof documents. The method also includes retrieving an image related tothe image object rule according to the image variable. The method alsoincludes placing the image within the document at location defined bythe image placeholder. The method also includes displaying the documentwith the image.

A method for variable data printing operations is disclosed. The methodincludes defining an object within a document template for a pluralityof documents. The object is subject to a rule. The method also includesdefining a first statement of the rule. The first statement having afirst expression for a condition regarding a first variable defined inthe object. The first variable relates to content within data recordsfor generating the plurality of documents. The method also includesapplying the first statement of the rule to content for the firstvariable within each record of the data records. The method alsoincludes, for each record, implementing a first action according to aresult of the application of the first statement of the rule. The firstaction modifies content placed in the object or a format of the objectfor a document corresponding to the record.

BRIEF DESCRIPTION OF THE DRAWINGS

Various other features and attendant advantages of the present inventionwill be more fully appreciated when considered in conjunction with theaccompanying drawings.

FIG. 1 illustrates a block diagram of a printing system for variabledata printing operations according to the disclosed embodiments.

FIG. 2 illustrates a block diagram of components of the printing devicefor use within the printing system according to the disclosedembodiments.

FIG. 3 illustrates an example document having an image object for usewith variable data printing operations according to the disclosedembodiments.

FIG. 4 illustrates an example document having text objects for usewithin variable data printing operations according to the disclosedembodiments.

FIG. 5 illustrates a block diagram of an address text object accordingto the disclosed embodiments.

FIG. 6A illustrates an example of an implementation of a rule for textcontent and variables according to the disclosed embodiments.

FIG. 6B illustrates a changed order of statements for the rule accordingto the disclosed embodiments.

FIG. 7 illustrates an example of an implementation of a rule for imagecontent and variables according to the disclosed embodiments.

FIG. 8 illustrates a flowchart for implementing a rule for use with textvariables in variable data printing operations according to thedisclosed embodiments.

FIG. 9 illustrates a flowchart for implementing a rule for use withimage variables in variable data printing operations according to thedisclosed embodiments.

FIG. 10 illustrates a flowchart for implementing a rule having multiplestatement for variable data printing operations according to thedisclosed embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to specific embodiments of thepresent invention. Examples of these embodiments are illustrated in theaccompanying drawings. Numerous specific details are set forth in orderto provide a thorough understanding of the present invention. While theembodiments will be described in conjunction with the drawings, it willbe understood that the following description is not intended to limitthe present invention to any one embodiment. On the contrary, thefollowing description is intended to cover alternatives, modifications,and equivalents as may be included within the spirit and scope of theappended claims.

The disclosed embodiments may add a “smart filter” option to a VDPapplication. The smart filter option would identify the records shown tothe user according to rules and criteria. The records would be added tothe set of interest based on the rules and criteria.

Records may include documents having text variables. The disclosedembodiments may add the shortest and the longest record for each textvariable. The disclosed embodiments also may add a record for eachUnicode block found in the data. The record may be added according toone of the several criteria or rules. The record having the Unicodeblock may be added as being the shortest or the longest record for eachUnicode block. The disclosed embodiments also may add the first recordfound for each Unicode block. The disclosed embodiments also may add arandom record form the records that use a give Unicode block. Thedisclosed embodiments also may give preference to records that usemultiple Unicode blocks in order to minimize the total number of recordsin the smart preview. The disclosed embodiments also may add recordsthat use multiple Unicode blocks, except those using Basic Latin andanother block.

The documents may include text objects that use text variables. Examplesmay include name, address, city, state, location code, and the like. Thedisclosed embodiments seek to identify outliers in the data for thepreview set. Thus, the disclosed embodiments may add, for each textobject that uses variables, the records with the shortest and longestvariable combinations. For example, if a text object has variables A, B,and C, then the shortest and longest records for the followingcombinations should be added: A+B, A+C, B+C, and A+B+C.

For each text object that uses rules, the disclosed embodiments add arecord for each condition in the rule. For example, is a text object hasa rule that states if (A), else if (B), else if (C), else if (D), thenthe disclosed embodiments would add records for which A, B, C, or D aretrue. It also would add rules for when none of these conditions aretrue.

The disclosed embodiments also may take into account image objectshaving image variables. Unique image files may be inserted into thedocument template based on criteria or rules. The disclosed embodimentsadd a record for each unique image file, unless each record uses aunique image file. Uniqueness may be evaluated using the complete imageuniform resource locator (URL). If not covered by the above, then thedisclosed embodiments may add a record for each image object that usesvariables. For each image object that uses rules, the disclosedembodiments add a record for each condition in the rule.

The disclosed embodiments also may take into account barcode objectshaving barcode variables. Most barcode variations may be covered byfiltering for text variables as disclosed above. If the barcode value isa URL, then the disclosed embodiments add a record for each unique URL,unless each record uses a unique URL. Uniqueness may be evaluated usingthe complete URL in the barcode. For each barcode object the usesvariables, the disclosed embodiments add the records with the shortestand longest variable combinations. For each barcode object that usesrules, the disclosed embodiments add a record for each condition in therule.

The document also may include document pages that uses rules. For eachdocument page using rules, the disclosed embodiments add a record foreach condition in the rule. A preview may be shown to the user in thesame manner as traditional VDP previews, with some importantdifferences. The records are filtered according to the criteria andrules disclosed above. Each record displays information stating why itis included in the preview. This feature will help users understand whatthey should be evaluating when they view each record in the preview.

The disclosed embodiments also provide for using rules to dynamicallychange the content or the formatting of the content in the documentbeing generated as part of the VDP print job. The disclosed applicationmay add a text block, or object, in the document. The object isformatted, or customized. Variable text data is inserted into the textblock. The disclosed embodiments adapt the document composition to thedata. One may then create a rule related to the variable text data. Whenanalyzing a record, if the statement of the rule is true, then overridethe formatting for the content and apply the result. In other words, ifthe statement is true, then change the content or the content format.Rules also may be created in an order. This order may be changed duringcreation of the document template used for the records. The rule may besaved under a rule name

Image rules also may be created to insert images according to the rule.If the statement in the rule is true, then an image may be inserted intothe document. An image placeholder may be used in the document templateto indicate where to place the image, if the statement, or condition, istrue.

The disclosed embodiments also may use complex expression language. Forexample, the disclosed embodiments may use eight different expressionsor string comparison to define a statement in a rule. The expressionsmay use logical operators in setting the conditions for the statement.Thus, the disclosed embodiments define or place an object according to arule having complex expressions using variables.

FIG. 1 depicts a printing system 100 for variable data printingoperations according to the disclosed embodiments. Printing system 100may be located in a print shop or other environment suitable forproduction printing operations. Printing system 100 includes one or moreprinting devices 104 that receive print jobs from one or more clientdevices 110. Further, printing operations may be managed by printmanagement server 108. As shown in FIG. 1 , VDP print job 113 issubmitted from client device 110 to printing device 104, but it also maybe submitted to print management server 108 which selects printingdevice 104 to complete the job.

Client device 110 may be capable of executing applications and programs128 to generate documents and files, such as, for example, a computer, alaptop computer, mobile device or tablet, smart phone, kiosk, and thelike. Client device 110 may send print jobs to printing device 104 overone or more networks 102 implemented within printing system 100 usingprint driver 130. Print driver 130 converts the data generated orcreated by application 128 into a format that printing device 104 canunderstand. The result is print job 113. Additional client devices maybe connected to printing device 104, which submit print jobs to printingdevice 104 or print management server 108.

Variable designer application 128 may be an application that enables VDPprinting operations. Application 128 may differ from a conventionaldesktop publishing application in that it implements a variable area ondocuments. The variable areas, or objects, include setting of uniqueinformation so that contents to be displayed can be changed according toinformation provided in data records as well as from libraries or adatabase. The unique information can be expressed by a conditionalrelationship representing a relationship between a variable, orattribute, of each area and data provided to application 128.

A user may execute application 128 to generate VDP print job 113, asdisclosed in greater detail below. A preview of a set of documentscorresponding to VDP print job 113 may be displayed at client device 110in display 132. Memory 134 may store VDP print job 113 as well asvarious objects and data used to generate the print job. The componentswithin client device 110 may be connected by bus 136 to receive andtransmit data and signals.

Network 102 may be used by system 100 to exchange data between thedevices within system 100. The devices are configured to communicatewith network 102 over a physical communications interface or layer suchas air interfaces and/or a direct wired connection. Air interfaces maybe an given cellular communications protocol (e.g., GSM, CDMA, W-CDMA,EVDO, eHRPD, EDGE, 4G LTE, 5G LTE, 5G NR/New Radio, etc.) and, or awireless IP protocol (e.g., IEEE 802.11 family) Alternatively, network102 may be a local area network, wide area network, an ad-hoc network.Network 102 allows printing device 104 and client device 110 to exchangedata using the appropriate protocol.

Printing device 104 is disclosed in greater detail below. It includesembedded digital front end (DFE) 106, or a printing device controller,that is the workflow touchpoint which accepts a print job, or printfile, commonly a PDF or PostScript file. DFE 106 converts the file of areceived print job into a format that print engine 260, disclosed below,can use to lay down the content of the document corresponding to theprint job on a media. DFE 106 may include a raster image processor (RIP)as well as other components. DFE 106 also may schedule when a receivedprint job is processed and other operations related to printingoperations.

Print management server 108 may interact with printing device 104 andclient device 110 to perform variable data printing operations. In someembodiments, VDP print job 113 is submitted to print management server108, which then forwards the print job to printing device 104. Printmanagement server 108 may include libraries and other data storagecomponents to enable application 128 to generate VDP print job 113.

For example, print management server 108 may include text object library120 that stores text variables, data for filling a text object withinone or more documents in VDP print job 113, Unicode blocks, and otherinformation to be used in filling the text object. It also includesimage object library 122 that includes image variables to be used withinone or image objects within the documents. The image variables mayinclude a unique image file that may be retrieved using a URL. Printmanagement server 108 also includes barcode object library 124 thatincludes barcode variables to be used within one or more barcode objectswithin the documents. The barcode variables may include a unique barcodefile that may be retrieved using a URL. Server 108 also includes rules126 that define what information may be displayed or printed within oneor more of the objects embedded in the documents of VDP print job 113.

In some embodiments, print management server 108 is not within printingsystem 100. In such a case, the functions and features of printmanagement server 108 are provided at client device 110 in conjunctionwith application 128 or implemented at printing device 104 using DFE106. For example, libraries 120, 122, 124, and 126 may be implemented atclient device 110.

FIG. 2 depicts a block diagram of components of printing device 104according to the disclosed embodiments. In the disclosure of FIG. 2 ,printing device 104 may be referred to for illustrative purposes. Thearchitecture shown in FIG. 2 may apply to any multi-functional printingdevice or image forming apparatus that performs various functions, suchas printing, scanning, storing, copying, and the like within system 100.As disclosed above, printing device 104 may send and receive data fromclient device 110 and print management server 108, and other deviceswithin system 100.

Printing device 104 includes a computing platform 201 that performsoperations to support these functions. Computing platform 201 includes acomputer processing unit (CPU) 202, an image forming unit 204, a memoryunit 206, and a network communication interface 210. Other componentsmay be included but are not shown for brevity. Printing device 104,using computing platform 201, may be configured to perform variousoperations, such as scanning, copying, printing, receiving or sending afacsimile, or document processing. As such, printing device 104 may be aprinting device or a multi-function peripheral including a scanner, andone or more functions of a copier, a facsimile device, and a printer. Toprovide these functions, printing device 104 includes printer components220 to perform printing operations, copier components 222 to performcopying operations, scanner components 224 to perform scanningoperations, and facsimile components 226 to receive and send facsimiledocuments. CPU 202 may issue instructions to these components to performthe desired operations.

Printing device 104 also includes a finisher 211 and one or more papercassettes 212. Finisher 211 includes rotatable downstream rollers tomove papers with an image formed surface after the desired operation toa tray. Finisher 211 also may perform additional actions, such assorting the finished papers, binding sheets of papers with staples,doubling, creasing, punching holes, folding, and the like.

Paper cassettes 212 supply paper to various components 220, 222, 224,and 226 to create the image formed surfaces on the papers. Papercassettes 212 may include papers having various sizes, colors,composition, and the like. Paper cassettes 212 may be removed to refillas needed. The printed papers from components 220, 222, 224, and 226 areplaced within one or more output bins 227. One or more output bins 227may have an associated capacity to receive finished print jobs before itmust be emptied or printing paused.

Document processor input feeder tray 230 may include the physicalcomponents of printing device 104 to receive papers and documents to beprocessed. A document is placed on or in document processor input feedertray 230, which moves the document to other components within printingdevice 104. The movement of the document from document processor inputfeeder tray 230 may be controlled by the instructions input by the user.For example, the document may move to a scanner flatbed for scanningoperations. Thus, document processor input feeder tray 230 provides thedocument to scanner components 220.

As shown in FIG. 2 , document processor input feeder tray 230 mayinteract with engine 260 to perform the desired operations.

Memory unit 206 includes memory storage locations 214 to storeinstructions 215. Instructions 215 are executable on CPU 202 or otherprocessors associated with printing device 104, such as any processorswithin components 220, 222, 224, or 226. Memory unit 206 also may storeinformation for various programs and applications, as well as dataspecific to printing device 104. For example, a storage location 214 mayinclude data for running an operating system executed by computingplatform 201 to support the components within printing device 104.According to the disclosed embodiments, memory unit 206 may store thetokens and codes used in performing the deferral operations for printingdevice 104.

Memory unit 206 may comprise volatile and non-volatile memory. Volatilememory may include random access memory (RAM). Examples of non-volatilememory may include read-only memory (ROM), flash memory, electricallyerasable programmable read-only memory (EEPROM), digital tape, a harddisk drive (HDD), or a solid-state drive (SSD). Memory unit 206 alsoincludes any combination of readable or writable volatile memories ornon-volatile memories, along with other possible memory devices.

Computing platform 201 may host one or more processors, such as CPU 202.These processors are capable of executing instructions 215 stored at oneor more storage locations 214. By executing these instructions, theprocessors cause printing device 104 to perform various operations. Theprocessors also may incorporate processing units for specific purposes,such as application-specific integrated circuits (ASICs) and fieldprogrammable gate arrays (FPGAs). Other processors may be included forexecuting operations particular to components 220, 222, 224, and 226. Inother words, the particular processors may cause printing device 104 toact as a printer, copier, scanner, and a facsimile device.

Printing device 104 also includes an operations panel 208, which may beconnected to computing platform 201. Operations panel 208 may include adisplay unit 216 and an input unit 217 for facilitating interaction witha user to provide commands to printing device 104. Display unit 216 maybe any electronic video display, such as a liquid crystal display (LCD).Input unit 217 may include any combination of devices that allow usersto input information into operations panel 208, such as buttons, a touchscreen, a keyboard or keypad, switches, dials, and the like. Preferably,input unit 217 includes a touch-screen digitizer overlaid onto displayunit 216 that senses touch to receive inputs from the user. By thismanner, the user interacts with display unit 216. Using thesecomponents, one may enter codes or other information into printingdevice 104.

Printing device 104 also includes network communication processing unit218. Network communication processing unit 218 may establish a networkcommunication using network communication interface 210, such as awireless or wired connection with one or more other image formingapparatuses or a network service. CPU 202 may instruct networkcommunication processing unit 218 to transmit or retrieve informationover a network using network communication interface 210. As data isreceived at computing platform 201 over a network, network communicationprocessing unit 218 decodes the incoming packets and delivers them toCPU 202. CPU 202 may act accordingly by causing operations to occur onprinting device 104. CPU 202 also may retrieve information stored inmemory unit 206, such as settings for printing device 104.

Printing device 104 also includes engine 260. Engine 260 may be acombination of hardware, firmware, or software components that actaccordingly to accomplish a task. For example, engine 260 is comprisedof the components and software to print a document. It may receiveinstructions from computing platform 201 after user input via operationspanel 208. Alternatively, engine 260 may receive instructions from otherattached or linked devices.

Engine 260 manages and operates the low-level mechanism of the printingdevice engine, such as hardware components that actuate placement oftoner onto paper. Engine 260 may manage and coordinate the half-toner,toner cartridges, rollers, schedulers, storage, input/output operations,and the like. Raster image processor (RIP) firmware 290 that interpretsthe page description languages (PDLs) would transmit and sendinstructions down to the lower-level engine 260 for actual rendering ofan image and application of the ink onto paper during operations onprinting device 104. RIP firmware 290 may be located in DFE 106, asdisclosed above.

Printing device 104 may include one or more sensors 262 that collectdata and information to provide to computing platform 201 or CPU 202.Each sensor 262 may be used to monitor certain operating conditions ofprinting device 104. Sensors 262 may be used to indicate a location of apaper jam, failure of hardware or software components, broken parts,operating system problems, document miss-feed, toner level, as well asother operating conditions. Sensors 262 also may detect the number ofpages printed or processed by printing device 104. When a sensor 262detects an operational issue or failure event, it may send a signal toCPU 202. CPU 202 may generate an error alert associated with theproblem. The error alert may include an error code.

Some errors have hardware-related causes. For example, if a failureoccurred in finisher 211, such as a paper jam, display unit 216 maydisplay information about the error and the location of the failureevent, or the finisher. In the instance when the paper jam occurs inpaper cassettes 212, display unit 216 displays the information about thejam error as located in one of the paper cassettes.

Some errors have a type of firmware-related cause. For example, networkcommunication processing unit 218 may cause a firmware or softwareerror. Display unit 216 may display the firmware-related error, anyapplicable error codes, and provide recommendations to address theerror, such as reboot the device.

Memory unit 206 may store the history of failure events and occurrederrors with a timestamp of each error. Printing device 104 communicateswith client devices 110 and 112 via network communication interface 210by utilizing a network protocol, such as the ones listed above. In someembodiments, printing device 104 communicates with other devices withinsystem 100 through REST API, which allows the server to collect datafrom multiple devices within system 100. REST API and SOAP areapplication protocols used to submit data in different formats, such asfiles, XML messages, JSON messages, and the like. By utilizingapplicable network communication protocols and application protocols,printing device 104 submits and receives data from client device 110 andprint management server 108.

FIG. 3 depicts an example document 300 having an image object 302 foruse with variable data printing operations according to the disclosedembodiments. Document 300 may be a document for use in variable printingoperations, such as a postcard, flyer, brochure, and the like. Document300 may include a document template 301 that defines positions of imageobject 302, fixed object 304, and text object 306 within the document.Preferably, a large plurality of different versions of document 300 aregenerated where image object 302 and text object 306 may be variable andfixed object 304 is not. Different versions of document 300 may becreated and generated based on the variable objects.

Image object 302 may be filled with one of a plurality of image files310. As shown, variable designer application 128 may select one of theplurality of image files 310 to insert into image object 302. Theselected image may be shown as image variable file 312. Image files 310may be imported or obtained from image object library 122. Variabledesigner application 128 may not need every image within image objectlibrary 122, so that the user or selection process may select imagefiles to place into document template 301. For example, image file 1,image file 2, image file 3, and image file 4 may be used to fill outdocument template 301 to generate document 300.

Document template 301 for document 300 may include fixed object 304.Fixed object 304 may be a fixed image used in every document 400printed. Fixed object 304 also may be an image or text that providesinformation to the recipient of document 300, such as name of thesender, an address for the sender, a picture of a product, and the like.

Image variable file 312 may be selected from one of the plurality ofimage files 310. Which image is selected may be based on a variable 318from a data record file 316 being used for this specific document. Thisfeature is disclosed in greater detail below. Image variable file 312also may be selected according to a defined rule 314 of rules 126. Imagevariable file 312 may include URL 313 that directs application 128 to alocation of the associated image file to be placed in document 300.

Variable designer application 128 also may import data records file 308to fill out other objects within document 300, such as text object 306.For example, data records file 308 may be names and addresses ofpotential customer list stored on client device 110 or print managementserver 108. Data record file 316 for each data file is provided tovariable designer application 128 to generate document 300 usingdocument template 301. As disclosed above, data record file 316 mayinclude variable 318. For example, if variable 318 is “2, ” then imagefile 2 is selected to be placed in image object 302.

Image variable file 312 also may be selected according to a rule 314.Rule 314 may specify one or more conditions that need to be met in orderto use a particular image file. When creating document template 301, thedisclosed embodiments may define a rule stating that the selected imagefile for image object 302 correspond to an age of the person associatedwith record file 316. Thus, variable 318 is the person's age. Based onrule 314, one of plurality of image files 310 is provided. For example,if variable 318 is 33 and rule 314 specifies that image file 4 is usedfor addressees between the ages of 25-40, then image file 4 is providedas image variable file 312 to fill image object 302.

Using these features, the disclosed embodiments may select specificdocuments generated according to data records file 308, plurality ofimage files 310, and rule 314. The disclosed embodiments are interestedin the different results from the application of these items by variabledesigner application 128. A document record will be added for eachunique image file of plurality of image files 310. Thus, a document 300will be generated and added to the preview set of records having imagefile 1, image file 2, image file 3, and image file 4.

Further, for each rule 314, a document 300 generated for each outcome ofthe rule will be added. In other words, a record of a document will beadded for each condition of the rule. Further, if there are unique imagefiles used, such as for fixed object 304, then a document having eachunique image file should be added. Uniqueness may be based on thedifferent URLs used to retrieve image files from image object library122. Uniqueness should be evaluated using the complete image URL.

FIG. 4 illustrates a document 400 having text objects 404 and 406 foruse within variable data printing operations according to the disclosedembodiments. Document 400 may be a document for use in variable printingoperations, such as a postcard, flyer, brochure, and the like. Document400 may include a document template 401 that defines positions of fixedobject 402 and text objects 404 and 406 within the document. Preferably,a large plurality of different versions of document 400 are generatedwhere one of more text variables without text objects 404 and 406 arevariable and fixed object 402 is not. Different versions of document 400may be created and generated based on the variable objects.

As disclosed above, variable designer application 128 may process data,information, criteria, and rules to fill the objects within eachdocument 400 according to document template 401. For document 400,variable designer application 128 may fill text objects 404 and 406 withdifferent text variable data, such as names or address data. Text object404 may be referred to as greeting text object 404, as it includes agreeting or suggestion. Text object 406 may be referred to address textobject 406, as it includes text variables related to names and addresseswithin data records file 308. For text objects having text variables,there may be more than one variable as disclosed below. Fixed object 402may be text, an image, a barcode, or the like, that is included in everydocument 400.

Greeting text object 404 includes text variable 416 and static text 418.Text variable 416 may be referred to as name text variable 416. Variabledesigner application 128 may fill name text variable 416 with thecontent, such as name information, provided in data record file 316 byone or more variables 318. Static text 418 may be text that is placed inevery document 400 and provided with document template 401.Alternatively, it may be provided by text object library 120 if the userselects a pre-made format available to variable designer application128. The size of the data within greeting text object 404 may vary asthe names are different lengths. There may be a document with thelongest record for name text variable 416 and a document with theshortest record of name text variable 416.

Address text object 406 may include several text variables, each havingdifferent data that is placed within the text object according todocument template 401. Referring to FIG. 5 , an example address textobject 406 is shown according to the disclosed embodiments. Address textobject 406 may include text blocks that further define sets of textvariables for use within document 400. The text variables set forth thelocation for placement of the content of the data records in datarecords file 308 when generating each document for each record to gointo VDP print job 113. Address text object 406 may include name textblock 502 which include text variables for the name content in therecords. For example, name text block 502 may include first name textvariable 520, middle initial text variable 522, and last name textvariable 524. Further, name text block 502 may be located at the top ofaddress text object 406.

Address text block 504 also may be defined for use in address textobject 406. Address text block 504 may be positioned or located belowname text block 502. Address text blocks includes the content from thedata records regarding an address, such as 1100 Miller St., Suite 690.For example, address text block 504 may include address 1 text variable526 and address 2 text variable 528. Location text block 506 may includecontent regarding the location within a country, state, province, andthe like. For example, location text block 506 may include city textvariable 530, state text variable 532, and zip code text variable 534.Further, some text variables may not have any data, such as middleinitial text variable 522 or address 2 text variable 528.

Referring back to FIG. 4 , some text variables or static text may useUnicode blocks instead of standard Basic Latin text. For example,symbols such as !, @, #, $, %, &, *, (, ), [, ], and the like may beused for text within document 400. Thus, Unicode blocks 510 may beprovided. Unicode blocks 510 may include Unicode block 1 and Unicodeblock 2 that is used to generate documents 500. When previews aregenerated, variable designer application 128 may access Unicode blocks510 so that illegible data is not shown in the preview. The appropriateUnicode block is shown. Unicode blocks 510 for use with the disclosedembodiments may be stored at text object library 108.

Placement of text variables also may be subject to a rule 314 of rules126 defined for the print job of documents 500. Rule 314 for textvariables may state if no middle initial text variable 522 then firstname text variable 520 and last name text variable 524 are placed nextto each other, or, in other words, text variable 522 is removed. Anotherrule may define that if there is no data for address 2 text variable528, then city text variable 530 and state text variable 532 are placeddirectly underneath address 1 text variable 526, or, in other words,address 2 text variable is removed within address text object 506.

FIG. 6A illustrates an example of an implementation of a complex rulefor text content and variables according to the disclosed embodiments.FIG. 6A shows a rule 602 generated using statements 604, 606, 608, and610, also shown as statement 1, statement 2, statement 3, and finalstatement, respectively. For illustrative purposes, reference may bemade to document 400 and text objects 404 and 406, disclosed above. Thestatements make up the conditions to be met for implementation of theactions for the rule. Rule 602 may correspond to rule 314 disclosedabove. After being generated, rule 602 may be stored with rules 126 foruse with variable designer program 128 when creating the documents fromthe records for VDP print job 113.

Statements are created using variable designer application 128. A usermay engage a graphical user interface (GUI) to define terms, variables,content, and conditions to be used in a statement. A statement may begenerated to apply if no preceding statement is true. Thus, when rule602 is applied to the content in data records file 308, the content anddata may be examined to determine if any of the statements are truebased on the content and data. If not, then final statement 610 isapplied, which indicates an action 6102 of not taking any action withregards to the records in the corresponding document 400 beinggenerated.

Statement 604 may define a condition based on middle initial textvariable 522. Some names within data records file 308 may not include amiddle initial. Thus, it may be desirable to format the created documentfor these records to not include a space for the middle initial. Thus,the user may define statement 604 to check if middle initial textvariable 522 is blank in a record 316. Statement 604 includes acomparison 612 that indicates that variable designer application 128should consider whether the middle initial text variable is blank, orthere is no data or content for this variable in record 316.

If comparison 612 is true, then an action 614 is defined to be takenaccording to statement 604. Action 614 may edit text object content,text block content, text object style, or text block style. For example,action 614 may be to edit address text object 406 according to thecontent defined for the action. In this instance, action 614 may edittext object 406 to make text block 502 for the name into the followingformat:

  { First Name } { Last Name } { Address 1 } { Address 2 } { City } {State } { Zip Code }

If statement 604 is not true, then the application of rule 602 moves tostatement 606. Statement 606 applies if no preceding statement is true.Statement 606 may define a condition based on address 2 text variable528. Not every address content in data records file 308 includes asecond line for the address. For example, the address may not include asuite, apartment, or post office box number. Thus, it may be desirableto format the created document for these records to not include the linefor the second part of the address. Thus, the user may define statement606 to check if address 2 text variable 528 is blank in a record 316.Statement 606 includes comparison 612 that indicates that variabledesigner application 128 should consider whether the address 2 textvariable is blank, or there is no data or content for this variable inrecord 316.

If comparison 612 for statement 606 is true, then an action 616 isdefined to be taken according to statement 606. Action 616 also may edittext object content, text block content, text object style, or textblock style. For example, action 616 may be to edit address text object406 according to the content defined for the action. In this instance,action 616 may edit text object 406 to make text block 504 for theaddress into the following format:

  { First Name } { M.I. } { Last Name } { Address 1 } { City } { State }{ Zip Code }

If statements 604 and 606 are not true, then the application of rule 602moves to statement 606, which is a combination of the conditions setforth in the previous two statements. Comparison 618 may be added tostatement 606 to define that both conditions of no middle initial and noaddress 2 content is found within record 316. Thus, comparison 618 maybe an “AND” instruction. If middle initial text variable 522 and address2 text variable 528 do not include content or data, then action 620 istaken. For example, action 620 may be to edit address text object 406according to the content defined for the action. In this instance,action 620 may edit text object 406 to make text block 502 for the nameand text block 504 for the address into the following format:

  { First Name } { Last Name } { Address 1 } { City } { State } { ZipCode }

As disclosed above, if none of statements 604, 606, or 608 are true,then statement 610 is applied for rule 602. Statement 610 defines thataction 6102 is taken, which is no action or no edits to the content oftext object 406.

Thus, rule 602 provides a mechanism for a visually appealing text object406 when certain content is missing from a record 316. Unsightly spacesor blanks are removed from the generated document. In other embodiments,the format of a variable may be changed to italics or to be underlinedaccording to a statement.

Comparisons, such as comparisons 612 and 618, may include differentexpressions that are stringed together to define complex conditions in astatement. These expressions may include mathematical operators, such as=, >, <, and the like. The expressions for the comparisons also mayinclude words or phrases to be used for the comparison, such ascontains, does not contain, starts with, does not start with, ends with,does not end with, is blank, and is not blank. These expressions may beused with each other, such as disclosed by statement 606. For example, astatement may define the following condition:

{Last Name} {Begins with} {N} {AND} {Does not contain}{Jr} {AND}{Contains} {i}.

Once defined, rule 602 may be named and saved by variable designerapplication 128. For example, rule 602 may be named the “Name andAddress Rule” and stored with rules 126 for application when runningvariable designer application 128 for data records file 308. Applicationof the Name and Address Rule will create VDP print job 113 with themiddle initials removed and second address line removed, accordingly.

The disclosed embodiments also provide for the restructuring of rule 602with statements 602-608 for a better application process. For example,statement 608 being true will avoid the need for applying statements 604and 606. Thus, statement 608 may be moved to the top of rule 602, asshown in FIG. 6B. Instruction 650 may move statement 608 from itsposition between statements 606 and 610 to be applied first, or beforestatement 604. Variable designer application 128 may allow statements tobe moved as desired to define a preferred processing order forconditions in a rule. Final statement 610 should still be at the bottomof the rule, to be applied if none of the preceding statements are true.

FIG. 7 illustrates an example of an implementation of a complex rule forimage content and variables according to the disclosed embodiments. FIG.7 shows a rule 702 generated using statements 704, 706, and 610, alsoshown as statement 1, statement 2, and final statement, respectively.For illustrative purposes, reference may be made to document 300 andimage object 302, disclosed above. The statements make up the conditionsto be met for implementation of the actions for the rule. Rule 702 maycorrespond to rule 314 disclosed above. After being generated, rule 702may be stored with rules 126 for use with variable designer program 128when creating the documents from the records for VDP print job 113.

Statements 704 and 706 are generated similar to statements 604, 606, and608, disclosed above. Except in this instance, variable designerapplication 128 may analyze variable 318 with record 316 as opposed tocontent in a field of the record. For example, variable 710 maycorrespond to variable 318 and define whether the records belongs to aVIP member. A VIP member may be entitled to extra benefits from theservice using VDP print job 113. Thus, a VIP member field in record 316may “Yes” or “No.” Statement 704 uses comparison 712, which determineswhether variable 710 contains value 714 of “Yes.” Record 316 may includea Yes in the VIP member field for variable 710.

If so, then statement 704 instructs variable designer application 128 toretrieve an image file of image files 310 may a specified source. Thus,action 716 may edit the image source for image object 302 to a differentURL or storage location used by variable designer application 128. Imageobject library 122 may include different images for use in generatingVDP print job 113. Statement 704 changes the image source according tothe condition defined in the statement. For example, a VIP member mayreceive an extra 20% discount for purchases made in relation to a salescampaign promoted by documents 300 printed by VDP print job 113. Imageobject 302 may include an image file 310 that includes a graphicindicating the extra 20% discount.

Statement 706 may be applied by rule 704 if any preceding statement isnot true. Statement 706 may be directed to an age for the recipient ofdocument 300 for the sales campaign. It may desired to provide adiscount to younger potential customers. Thus, variable 718 may relateto the age provided in a field in record 316. Statement 706 defines thatvariable 718 for the age is subject to comparison 720 for value 722. Forexample, comparison 720 may be less than or equal to value 722 of 25.Thus, recipients of documents 300 that are 25 or younger are subject toaction 724 of statement 706. Action 724 also may edit the image sourcefor image object 302 to a different image than the one specified inaction 716. This image file may include a different graphic announcingthe promotion, or it may specify only a 10% discount.

Final statement 708 may apply to rule 702 if rules 704 and 706 are nottrue. As with final statement 610, this final statement specifies thataction 726 is taken if none of the preceding statement are true. Action726 specifies that no action be taken. In other embodiments, action 726may include a third image source for another promotion graphic but withno discount.

Statements 704 and 706 also may be rearranged, but it may be preferableto keep the largest discounts at the top of rule 702 so that potentialcustomers receive the biggest potential discount available to them basedon the content and data in record 316. As the VIP member discount is 20%and the younger member discount is 10%, rule 702 should keep statements704 and 706 is the order that they were generated.

FIG. 8 depicts a flowchart 800 for implementing a rule 602 for use withtext variables in variable data printing operations according to thedisclosed embodiments. Flowchart 800 may refer to FIGS. 1-7 forillustrative purposes. Flowchart 800, however, is not limited to theembodiments disclosed by FIGS. 1-7 .

Step 802 executes by defining a text object within document template 401for a plurality of documents 400. The text object may be greeting textobject 404 or address text object 406. For illustrative purposes,flowchart 800 will refer to address text object 406 for implementing arule. As shown in FIG. 5 , text object 406 includes text variables520-534. The text variables dynamically change between each document 400depending on the content provided in its corresponding record 316 ofdata records file 308.

Step 804 executes by selecting a text variable within text object 406cited in rule 602. For example, middle initial text variable 522 may becited in rule 602 and selected by the disclosed embodiments for reviewin application of the rule. Additional text variables also may selecteddue to being cited in the rule. Rule 602 may include a statement, suchas statement 604, that defines a condition to be met with regard to theselected text variables.

Step 806 executes by applying rule 602 to the selected text variableswithin text object 406. Rule 602 may include one or more statements toapply. Step 808 executes by analyzing the statement to determine if thecondition set forth therein is true. For example, statement 604 analyzesmiddle initial text variable 522 to determine if it is blank. Thedisclosed embodiments also may analyze other text variables as well,such as address 2 text variable 528 for statement 608. Step 810 executesby evaluating the value for the text variable according to the rulehaving the statement. Following the above example, the disclosedembodiments determine if middle initial text variable 522 for currentrecord 316 is empty.

Step 812 executes by determining whether the statement is true. Thus,the disclosed embodiments will determine whether statement 604 is truebased on the evaluation of the value for the text variable. Followingthe above example, it is determined whether middle initial text variable522 for record 316 is blank, in accordance with comparison 612.

If step 812 is no, then step 814 executes by determining whether therule includes another statement. If the current statement is false, thenremaining statements are checked to determine if they are true. If step814 is yes, then step 815 executes by proceeding to the next statement.For example, if statement 604 is false, then rule 602 will move tostatement 606. Flowchart 800 proceeds back to step 808. If step 814 isno, then no further statements need to be evaluated and flowchart 800proceeds to step 818, disclosed below.

If step 812 is yes, then step 816 executes by implement the action setforth in the statement. The action may be to modify the text objectformat for text object 406. The action may retrieve the modified formatfrom rules 126 or other storage related to this print job by variabledesigner application 128. In other embodiments, the action may modify oredit the style of the text variable within the text object.

Step 818 executes by inserting text data or content according to themodified text object format into text object 406 for document 400corresponding to record 316, is applicable. If flowchart 800 is comingfrom step 814, then the text data of record 316 is inserted withoutmodification. As disclosed above, action 614 of statement 604 may modifytext object 406 to not include middle initial text variable 522 so thatthere is not an extra space between first name text variable 520 andlast name text variable 524. Step 820 executes by storing the generateddocument for with the rest of the documents generated for VDP print job113. Step 822 executes by displaying the document with text object 406including the text data or content for the text variables according tothe modified text object format. For example, document 400 for record316 is displayed without a middle initial for the recipient, ifapplicable.

FIG. 9 depicts a flowchart 900 for implementing a rule 702 for use withimage variables in variable data printing operations according to thedisclosed embodiments. Flowchart 900 may refer to FIGS. 1-8 forillustrative purposes. Flowchart 900, however, is not limited to theembodiments disclosed by FIGS. 1-8 .

Step 902 executes by defining an image object with an image placeholderwithin a document template for a plurality of documents. Referring toFIG. 3 , image object 302 is defined for document 300 using documenttemplate 301. The document template may provide a graphic overlay orother designator as the image placeholder within the document. Step 904executes by review statement 704 of rule 702 for image object 302. Asdisclosed above, statement 704 may be generated using variable designerapplication 128 when defining rule 702. In this instance, statement 704sets forth a condition related to whether record 316 includes variable318 indicating the recipient of the document is a VIP member.

Step 906 executes by identifying an image variable within a record 316for the current document. The image variable may be the VIP memberstatus of the record, or variable 710 in statement 704. In statement706, the image variable may be variable 718 for age of the recipientassociated with record 316. Step 908 executes by evaluating the imagevariable associated with the document according to rule 702, or, morespecifically, statement 704. As disclosed above, the image variablediffers between the plurality of documents as some records include a yesfor VIP member variable 710 while others do not.

Step 910 executes by determining whether the condition set forth instatement 704 is true based on the value of the image variable. Usingthe above example, if value 714 of statement 704 is “yes” then thestatement is true. Record 316 includes a VIP member variable 710 thatcontains a yes. If not, then the statement is false.

If step 910 is no, then step 912 executes by determining whether anotherstatement is present in rule 702. Rules may include multiple statementsso that complex rules may be defined according to the disclosedembodiments. If step 912 is yes, then step 914 executes by proceeding tothe next statement. In this instance, rule 702 includes statement 706.Flowchart 900 proceeds back to step 904 to consider statement 706 andwhether its condition is true. If step 912 is no, then flowchart 900proceeds to step 920, disclosed below.

If step 910 is yes, then step 916 executes by retrieving an image file310 related to rule 702. Referring to statement 704, action 716 mayinstruct variable designer application 128 to retrieve the appropriateimage from a storage location, or image source 1. The image source forthe image to be placed into document 300 may be a URL. Step 918 executesby placing the retrieved image into document 300 at a location definedby the image placeholder within document template 301. The image is notjust placed anywhere in document 300 but were image object 302 ispositioned.

Step 920 executes by storing document 300 with the image for record 316along with the other documents generated for VDP print job 113. Step 922executes by displaying document 300 with the retrieved image for reviewby the user. For example, if the image designed by the image source is agraphic for a 20% discount for VIP members, then that graphic is placedin documents 300 having VIP member variable 710 as yes. For thoserecords not having a VIP status, no graphic is provided unless statement706 is yes, in which another image may be placed in image object 302.

The disclosed embodiments, therefore, allow one to design differentstyle of documents with various images. Images also may be changed atthe storage location as needed without having to update application 128.Further, one may define complex rules as needed to produce the documentsneeded for a print job accurately and efficiently.

FIG. 10 depicts a flowchart 1000 for implementing a rule having multiplestatements for variable data printing operations according to thedisclosed embodiments. Flowchart 1000 may refer to FIGS. 1-9 forillustrative purposes. Flowchart 1000, however, is not limited to theembodiments disclosed in FIGS. 1-9 .

Step 1002 executes by defining an object within a document template fora plurality of documents. The object is subject to a rule. Referring tothe above-disclosed embodiments, image object 302 may be subject to rule702 and address image object 406 may be subject to rule 602. Step 1004executes by defining a statement for the rule for the object. Thestatement includes an expression for a condition regarding a variabledefined in the object. The variable relates to content within datarecords for generating the plurality of documents. Examples ofstatements may be statements 604, 606, 608, 704, and 706, disclosedabove. Statements may be defined to be true or false. Step 1006determines whether an additional statement is to be defined. If yes,then flowchart 1000 proceeds back to step 1004 to define anotherstatement.

If step 1006 is no, then step 1008 executes by modifying the rule, ifapplicable. The order of the statements defined for the rule may bemoved such that a certain statement is considered first. Alternatively,a statement may be moved below other statements to be considered afteranother condition. Step 1009 executes by saving the rule by variabledesigner application 128. The rule may be named and saved for later usewhen preparing the VDP print job using the data records. For example,the rule may be saved in client device 110 or at rules 126.

Step 1010 executes by starting the generation of the plurality ofdocuments having the defined object and variables identified in thestatements of the rule. Data file records 308 may be uploaded intovariable designer application 128 or other application to generate thedocuments to be part of VDP print job 113 sent to printing device 104.

Step 1012 executes by applying the rule for each record 316. The definedobject is associated with the rule and calls the rule when filling theobject with content, such as text or an image. Step 1014 executes byapplying the defined statement within the rule. If the rule includesmultiple statements, then the first statement is applied unless step1018 has been executed. As disclosed above, a statement includes acondition that is either true or false based on the value of thevariable being used in the object. The value is related to contentwithin the specific record.

Step 1016 executes by determining whether the applied statement is true.Examples of statements being true are disclosed above with reference toFIGS. 8 and 9 . If step 1016 is no, then the statement is false and anyaction defined in the statement will not be taken. Step 1018 executes bydetermining whether the rule includes another statement to consider ifthe current one is not true. If yes, then flowchart 1000 proceeds backto step 1014 to apply the next statement. If step 1018 is no, thenflowchart 1000 proceeds to step 1024, disclosed below.

If step 1016 is yes, then step 1020 executes by implementing an actionset forth in the statement based on the condition. Examples of actionsare disclosed above. The format of the object may be modified ordifferent contact placed in the object as a result of the action. Thus,step 1022 executes by modifying the data or content placed in the objectbased on the action implemented by the statement.

Step 1024 executes by generating the document corresponding to therecord used in the preceding steps for the plurality of documents. Step1026 executes by storing the document with the plurality of documents.Step 1028 executes by displaying the document for viewing with theobject having the modified content or modified format according to therule.

It should be noted that steps 1012-1028 may be executed for every recordbeing used to generate VDP print job 113. Some print jobs may includethousands of documents, each generated based on the content in therecords. As such, not every document may be displayed. The disclosedembodiments may implement further rules or processes to limit thedisplayed documents.

As will be appreciated by one skilled in the art, the present inventionmay be embodied as a system, method or computer program product.Accordingly, the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present invention may take the form of a computer program productembodied in any tangible medium of expression having computer-us ableprogram code embodied in the medium.

Any combination of one or more computer usable or computer readablemedium(s) may be utilized. The computer-usable or computer-readablemedium may be, for example but not limited to, an electronic, magnetic,optical, electromagnetic, infrared, or semiconductor system, apparatus,device, or propagation medium. More specific examples (a non- exhaustivelist) of the computer-readable medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, a portable compact disc read-only memory(CD-ROM), an optical storage device, a transmission media such as thosesupporting the Internet or an intranet, or a magnetic storage device.Note that the computer-usable or computer-readable medium could even bepaper or another suitable medium upon which the program is printed, asthe program can be electronically captured, via, for instance, opticalscanning of the paper or other medium, then compiled, interpreted, orotherwise processed in a suitable manner, if necessary, and then storedin a computer memory.

Computer program code for carrying out operations of the presentinvention may be written in any combination of one or more programminglanguages, including an object-oriented programming language such asJava, Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The program code may execute entirely on the user's computer,partly on the user's computer, as a stand-alone software package, partlyon the user's computer and partly on a remote computer or entirely onthe remote computer or server. In the latter scenario, the remotecomputer may be connected to the user's computer through any type ofnetwork, including a local area network (LAN) or a wide area network(WAN), or the connection may be made to an external computer (forexample, through the Internet using an Internet Service Provider).

The present invention is described with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the invention. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams or flowchart illustration, andcombinations of blocks in the block diagrams or flowchart illustration,can be implemented by special purpose hardware-based systems thatperform the specified functions or acts, or combinations of specialpurpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a,” “an” and “the” are intended toinclude plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises” or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, or components,but do not preclude the presence or addition of one or more otherfeatures, integers, steps, operations, elements, components, and/orgroups thereof.

Embodiments may be implemented as a computer process, a computing systemor as an article of manufacture such as a computer program product ofcomputer readable media. The computer program product may be a computerstorage medium readable by a computer system and encoding computerprogram instructions for executing a computer process. When accessed,the instructions cause a processor to enable other components to performthe functions disclosed above.

The corresponding structures, material, acts, and equivalents of allmeans or steps plus function elements in the claims below are intendedto include any structure, material or act for performing the function incombination with other claimed elements are specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill without departingfrom the scope and spirit of the invention. The embodiment was chosenand described in order to best explain the principles of the inventionand the practical application, and to enable others of ordinary skill inthe art to understand the invention for embodiments with variousmodifications as are suited to the particular use contemplated.

One or more portions of the disclosed networks or systems may bedistributed across one or more printing systems coupled to a networkcapable of exchanging information and data. Various functions andcomponents of the printing system may be distributed across multipleclient computer platforms, or configured to perform tasks as part of adistributed system. These components may be executable, intermediate orinterpreted code that communicates over the network using a protocol.The components may have specified addresses or other designators toidentify the components within the network.

It will be apparent to those skilled in the art that variousmodifications to the disclosed may be made without departing from thespirit or scope of the invention. Thus, it is intended that the presentinvention covers the modifications and variations disclosed aboveprovided that these changes come within the scope of the claims andtheir equivalents.

The invention claimed is:
 1. A method for variable data printingoperations, the method comprising: defining a text object within adocument template for a plurality of documents, wherein the text objectincludes a first text variable that dynamically changes between theplurality of documents; evaluating a value for the first text variableaccording to a text object rule having a first statement; evaluating avalue for a second text variable for the text object according to asecond statement of the text object rule; changing an order of the firststatement and the second statement of the text object rule; implementingan action to modify a text object format for the text object accordingto the first statement based on the value for the first text variable;inserting text data according to the modified text object format intothe text object for the document; and displaying the document with themodified text object including the text data according to the modifiedtext object format.
 2. The method of claim 1, further comprising storingthe document having the text object with the modified text object formatwithin the plurality of documents.
 3. The method of claim 1, furthercomprising retrieving the text data from a record having a plurality ofentries for text data.
 4. The method of claim 1, further comprisinggenerating the first statement for the text object rule using acondition for the first text variable.
 5. The method of claim 4, furthercomprising comparing the condition to the value for the first textvariable.
 6. The method of claim 1, further comprising evaluating thevalue for the first text variable according to a second statement of thetext object rule.
 7. A method for variable data printing operations, themethod comprising: defining an object within a document template for aplurality of documents, wherein the object is subject to a rule;defining a first statement of the rule, the first statement having afirst expression for a condition regarding a first variable defined inthe object, wherein the first variable relates to content within datarecords for generating the plurality of documents; defining a secondstatement of the rule, the second statement having a second expressionfor a condition regarding a second variable defined in the object; foreach record, applying the first statement of the rule to content for thefirst variable within each record of the data records; for each record,implementing a first action according to a result of the application ofthe first statement of the rule, wherein the first action modifiescontent placed in the object or a format of the object for a documentcorresponding to the record; and applying the second statement of therule to content for the second variable within each record of the datarecords if the condition for the first statement is not true.
 8. Themethod of claim 7, wherein defining the first statement of the rulesincludes the first statement having a second expression for thecondition regarding the first variable defined in the object.
 9. Themethod of claim 7, further comprising modifying the rule such that thesecond statement is applied before the first statement.
 10. The methodof claim 7, for each record, implementing a second action according to aresult of the application of the second statement of the rule, whereinthe second action modifies content placed in the object or a format ofthe object for a document corresponding to the record in a mannerdifferent than the first action.